Page({
  data: {
    dialogVisible: false,
    houseList: [], // 渲染数组
    isEmpty: false, // 判断是否有房屋
  },
  onShow() {
    // 获取用房屋列表
    this.getHouseList()
  },
  // 用户房屋列表
  async getHouseList() {
    // 调用接口
    const { code, data: houseList } = await wx.http.get('/room')
    // 检测接口是否调用成功
    if (code !== 10000) return wx.utils.toast()
    // 渲染数据
    this.setData({
      houseList,
      isEmpty: houseList.length === 0,
    })
  },
  // 跳转房屋详情页面
  goDetail(e) {
    // 通过 mark:id 来传递数据
    wx.navigateTo({
      url: '/house_pkg/pages/detail/index?id=' + e.mark.id,
    })
  },
  // 删除房屋
  swipeClose(ev) {
    const { position, instance } = ev.detail

    if (position === 'right') {
      // 显示 Dialog 对话框
      this.setData({
        dialogVisible: true,
      })
      // 记录房屋的 id，在调用接口的时使用
      this.cellId = ev.mark.id
      // swiper-cell 滑块关闭
      instance.close()
    }
  },
  // 用户点击了弹出框按钮
  dialogClose(e) {
    // 用户点击了确认删除按钮，调删除函数
    if (e.detail === 'confirm') this.deleteHouse()
  },
  // 删除房屋
  async deleteHouse() {
    // 检测id是否存在
    if (!this.cellId) return wx.utils.toast('参数有误!')
    // 调用接口
    const { code } = await wx.http.delete('/room/' + this.cellId)
    // 检测接口是否调用成功
    if (code !== 10000) return wx.utils.toast()
    // 删除房屋
    this.setData({
      houseList: this.data.houseList.filter(item => item.id !== this.cellId),
      // 数组长度为零，则说明没有房屋信息了
      isEmpty: this.data.houseList.length !== 0 ? true : false
    })
  },
  addHouse() {
    wx.navigateTo({
      url: '/house_pkg/pages/locate/index',
    })
  },
})
